#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
最终排序显示测试
"""

from pywebio import start_server
from pywebio.input import *
from pywebio.output import *

def final_sort_test():
    """最终排序显示测试"""
    clear()
    put_html("<h1>🔧 排序显示修复验证</h1>")
    put_html("<p>现在应该显示图标+中文名称，而不是0,1,2数字</p>")
    
    data = input_group("视频搜索测试", [
        input(
            name="keyword", 
            label="搜索关键字",
            value="测试",
            placeholder="输入关键字"
        ),
        select(
            name="count",
            label="获取数量",
            options=[
                (3, "3个"),
                (5, "5个"),
                (10, "10个")
            ],
            value=5
        ),
        select(
            name="sort_type",
            label="排序方式",
            options=[
                ("0", "✅综合排序"),
                ("1", "🕐最新发布"),
                ("2", "❤️最多点赞")
            ],
            value="0",
            help_text="选择视频排序方式"
        ),
        checkbox(
            name="export_format",
            label="导出格式", 
            options=[
                ("json", "JSON"),
                ("csv", "CSV")
            ],
            value=["json", "csv"]
        )
    ])
    
    put_html("<h2>✅ 测试结果</h2>")
    put_table([
        ["关键字", data["keyword"]], 
        ["数量", str(data["count"])],
        ["排序方式(原始值)", data["sort_type"]],
        ["排序方式(显示名称)", get_sort_display_name(data["sort_type"])],
        ["导出格式", ", ".join(data["export_format"])]
    ])
    
    put_html("<h3>🎯 验证说明</h3>")
    if data["sort_type"] in ["0", "1", "2"]:
        put_success("✅ 排序方式值正确传递为字符串")
    else:
        put_error("❌ 排序方式值异常")
    
    sort_display = get_sort_display_name(data["sort_type"])
    if "✅" in sort_display or "🕐" in sort_display or "❤️" in sort_display:
        put_success(f"✅ 排序显示正确: {sort_display}")
    else:
        put_error(f"❌ 排序显示可能有问题: {sort_display}")
    
    put_html("<hr>")
    put_html("<h4>🔄 重新测试</h4>")
    put_button("再次测试", onclick=lambda: final_sort_test())

def get_sort_display_name(sort_type_str):
    """获取排序显示名称"""
    sort_names = {
        "0": "✅综合排序",
        "1": "🕐最新发布", 
        "2": "❤️最多点赞"
    }
    return sort_names.get(sort_type_str, "未知排序")

if __name__ == "__main__":
    start_server(final_sort_test, port=8083, debug=True)
    print("最终测试页面: http://127.0.0.1:8083")